package com.train.course.service;

import com.train.course.dto.CommentPublishDTO;
import com.train.course.vo.CommentVO;

import java.util.List;

/**
 * 视频评论 服务层接口
 */
public interface IVideoCommentService {

    /**
     * 发布评论
     * 
     * @param userId 用户ID
     * @param  视频ID（episode_id）
     * @param dto 评论发布请求
     * @return 结果
     */
    public boolean publishComment(Long userId, Long courseId, CommentPublishDTO dto);

    /**
     * 查询主评论列表（下滑刷新）
     * 
     * @param videoId 视频ID（episode_id）
     * @param lastCommentId 上一次最后一条主评论ID
     * @param pageSize 页面大小
     * @return 主评论列表（每条携带前3条子评论）
     */
    public List<CommentVO> getMainComments(Long courseId, Long lastCommentId, Integer pageSize);

    /**
     * 查询子评论列表（下滑刷新）
     * 
     * @param parentId 父评论ID
     * @param lastReplyId 上一次最后一条子评论ID
     * @param pageSize 页面大小
     * @return 子评论列表
     */
    public List<CommentVO> getReplies(Long parentId, Long lastReplyId, Integer pageSize);
}
